package br.com.ceped.bean;

import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.hibernate.Session;


import br.com.ceped.fachada.Fachada;
import br.com.ceped.modelo.Reserva;
import br.com.ceped.modelo.Reserva_PK;
import br.com.ceped.modelo.Usuario;
import br.com.ceped.util.FacesContextUtil;

@ManagedBean(name="gerenciador_administrador")
@SessionScoped
public class GAdministrador {
private Fachada fachada;
private Usuario usuario;
private Session s;
private Reserva reserva;
private Reserva reservaSeleionada;
private Reserva_PK reserva_PK;
private Date date;
private String codigo_equipamento;
private String codigo_usuario;

private List<Reserva> lista_reservas;
	
	public GAdministrador() {
		fachada = Fachada.obterInstancia();
		this.usuario = (Usuario) FacesContextUtil
				.getSessionAttribute("usuario");
	}
	
	private String nome;
	
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	} 

	public List<Reserva> getLista_reservas() {
		s = FacesContextUtil.getRequestSession();
		Date data = new Date();
		Calendar c = Calendar.getInstance();
		c.add(Calendar.MONTH, 1);
		Date date = c.getTime();
		lista_reservas = fachada.listarReserva("reserva_PK.data_da_reserva", data, date, s);
		return lista_reservas;
	}
    
	public String liberar(){
		System.out.println(nome);
		s = FacesContextUtil.getRequestSession();
	  try{
		  if(reserva.getCondicao().equals("reservado")){
		  getReserva().setCondicao("liberado");
		  }else {
			reserva.setCondicao("devolvido");
		} 
		  fachada.editar(getReserva(), s);
		  FacesContextUtil.setMessageInformacao("RESERVA ATUALIZADA", "");
	  }catch(Exception e){
		  
	  }
	  return null;	  
	}
	
	public void setLista_reservas(List<Reserva> lista_reservas) {
		this.lista_reservas = lista_reservas;
	}

	public Reserva_PK getReserva_PK() {
		return reserva_PK;
	}


	public void setReserva_PK(Reserva_PK reserva_PK) {
		this.reserva_PK = reserva_PK;
	}

	public String getCodigo_usuario() {
		return codigo_usuario;
	}

	public void setCodigo_usuario(String codigo_usuario) {
		this.codigo_usuario = codigo_usuario;
	}

	public String getCodigo_equipamento() {
		return codigo_equipamento;
	}

	public void setCodigo_equipamento(String codigo_equipamento) {
		this.codigo_equipamento = codigo_equipamento;
	}

	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}

	public Reserva getReserva() {
		return reserva;
	}

	public void setReserva(Reserva reserva) {
		this.reserva = reserva;
	}

	public Reserva getReservaSeleionada() {
		return reservaSeleionada;
	}

	public void setReservaSeleionada(Reserva reservaSeleionada) {
		this.reserva= reservaSeleionada;
		liberar();
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}


	
}
